package com.coderdream.web;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.coderdream.domain.User;
import com.coderdream.service.UserService;

@Controller
public class LoginController {

    @Autowired
    private UserService userService;

    private ModelAndView mav = null;

    @RequestMapping("")
    public ModelAndView init() {
        mav = new ModelAndView();
        mav.setViewName("login");
        return mav;
    }

    @RequestMapping(value = "/index.html")
    public String loginPage() {
        return "login";
    }

    @RequestMapping(value = "/loginCheck.html")
    public ModelAndView loginCheck(HttpServletRequest request,
            LoginCommand loginCommand) {
//        String userName = loginCommand.getUserName();
//        String password = loginCommand.getPassword();
//
//        boolean isValidUser = false;
//
//        if ("admin".equals(userName) && "1234".equals(password)) {
//            isValidUser = true;
//        }
//        // userService.hasMatchUser(
//        // loginCommand.getUserName(), loginCommand.getPassword());
//        if (!isValidUser) {
//            return new ModelAndView("login", "error", "用户名或密码错误。");
//        } else {
//            return new ModelAndView("main");
//        }
        
        boolean isValidUser = userService.hasMatchUser(
                loginCommand.getUserName(), loginCommand.getPassword());
        if (!isValidUser) {
            return new ModelAndView("login", "error", "用户名或密码错误。");
        } else {
            User user = userService.findUserByUserName(loginCommand
                    .getUserName());
            user.setLastIp(request.getLocalAddr());
            user.setLastVisit(new Date());
            userService.loginSuccess(user);
            request.getSession().setAttribute("user", user);
            return new ModelAndView("main");
        }
    }
}